//
//  baseTableVC.h
//  jiaKaoZhuShou
//
//  Created by 金艺社 on 2018/5/18.
//  Copyright © 2018年 金艺社. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "UIScrollView+EmptyDataSet.h"
#import "GKRefreshHeader.h"
@interface baseTableVC : UIViewController <UITableViewDelegate, UITableViewDataSource>

@property(nonatomic, strong) UITableView   *tableView;
@property(nonatomic, strong) NSMutableArray   *dataArray;
@property(nonatomic, assign, readonly) BOOL   isHeaderRefreshing;
@property(nonatomic, assign, readonly) BOOL   isFooterRefreshing;
@property(nonatomic, assign) NSUInteger pageTotal;

/**
 初始化方法 必须实现
 
 @param style UITableView 的类型 plain 和group
 @return 返回一个对象实例
 */
- (instancetype)initWithStyle:(UITableViewStyle)style;

/**
 配置tableView 的一些属性等 另外可以在这里面进行 cell的注册
 子类需要[super confingureTableView]
 */

- (void)confingureTableView;

/** 添加下拉刷新
 默认的刷新操作是 loadNew 方法
 子类需要实现该方法
 */
- (void)addRefreshHeader;

/** 添加上拉加载更多
 默认的刷新操作是 loadMore 方法
 子类需要实现该方法
 */
- (void)addRefreshFooter;

/**
 默认添加刷新和加载更多两种,
 子类需要实现 loadNew 和loadMore 方法
 */
- (void)confingureRefresh;

/** 刷新数据操作*/
- (void)loadNew;

/** 加载更多*/
- (void)loadMore;

/** 结束刷新 header 和 footer*/
- (void)endRefreshing;

/** 开始刷新 header */
- (void)beginHeaderRefreshing;

/** footer 开始加载更多*/
- (void)beginFooterRefreshing;

/** 结束header 刷新*/
- (void)endHeaderRefresh;

/** 结束footer 刷新*/
- (void)endFooterRefresh;

/** 刷新table 根据总数做是否隐藏footer*/
- (void)reloadTableWithPageTotal:(NSUInteger)pageTotal;

- (UIImage *)tableViewEmptyPlaceHolderImage;

- (NSAttributedString *)tableViewEmptyTitle;

- (NSAttributedString *)tableViewEmptyDescription;

- (NSAttributedString *)tableViewEmptyButtonTitle;

- (UIImage *)tableViewEmptyButtonBackgroundImage;

- (UIView *)customEmptyView;

@end
